home *** CD-ROM | disk | FTP | other *** search
- Path: wuarchive!zaphod.mps.ohio-state.edu!uakari.primate.wisc.edu!xanth!cs.odu.edu!Amiga-Request
- From: Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator)
- Newsgroups: comp.sources.amiga
- Subject: v90i150: lf - list functions in c source, Part01/01
- Message-ID: <12224@xanth.cs.odu.edu>
- Date: 15 Apr 90 15:09:39 GMT
- Sender: tadguy@cs.odu.edu
- Reply-To: bevis@en.ecn.purdue.edu
- Lines: 594
- Approved: tadguy@cs.odu.edu (Tad Guy)
- X-Mail-Submissions-To: Amiga@cs.odu.edu
- X-Post-Discussions-To: comp.sys.amiga
-
- Submitted-by: bevis@en.ecn.purdue.edu
- Posting-number: Volume 90, Issue 150
- Archive-name: util/lf/part01
-
- [ uuencoded executable enclosed. ...tad ]
-
- This nifty little program will provide you with a complete listing of all
- C functions contained within specified files.
-
- The source code provided will compile equally well under UNIX or Amiga
- Lattice.
-
- -Jeff
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 1)."
- # Contents: lf.c lf.doc lf.uu makefile
- # Wrapped by tadguy@xanth on Sun Apr 15 11:09:28 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'lf.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lf.c'\"
- else
- echo shar: Extracting \"'lf.c'\" \(4150 characters\)
- sed "s/^X//" >'lf.c' <<'END_OF_FILE'
- X/****************************************************************
- X * *
- X * lf.c - list functions in a c source file V1.1 *
- X * *
- X * (c) 1989 Jeff Bevis *
- X * *
- X ****************************************************************
- X * *
- X * Command line options *
- X * *
- X * -s Suppress line number printing. *
- X * -c Format output for C function declarations *
- X * -n Force normal formatting *
- X * *
- X ****************************************************************/
- X
- X
- X#include <stdio.h>
- X
- XFILE *s;
- Xchar c,buf[400],cget();
- Xint mode,col,linecount;
- Xchar c_flag,s_flag,nofile;
- X
- Xmain(argc,argv)
- Xint argc;
- Xchar **argv;
- X{
- X int t;
- X
- X if(argc>1)
- X {
- X for(t=1;t<argc;t++)
- X {
- X if(*argv[t]=='-')
- X {
- X int s;
- X
- X for(s=1;s<strlen(argv[t]);s++)
- X {
- X switch(*(argv[t]+s))
- X {
- X case 's': s_flag++; break;
- X case 'c': c_flag++; break;
- X case 'n': s_flag=0;
- X c_flag=0; break;
- X default: if(!c_flag) printf("Unrecognized option: %c\n",*(argv[t]+s));
- X }
- X }
- X continue;
- X }
- X s=fopen(argv[t],"r");
- X if(s)
- X {
- X if(c_flag) printf("/*\n * Functions from %s\n */\n",argv[t]);
- X else printf("FILE: %s\n",argv[t]);
- X find();
- X fclose(s);
- X }
- X else
- X {
- X if(c_flag) printf("/* FILE: %s NOT PRESENT! */\n",argv[t]);
- X else printf("Can't open file %s.\n",argv[t]);
- X }
- X }
- X }
- X else
- X {
- X if(c_flag) printf("/* No files specified for lf */\n");
- X else printf("You must specify a C source file.\n");
- X exit(10);
- X };
- X}
- X
- Xfind()
- X{
- X int comlev=0,depth=0,cnt=0;
- X
- X linecount=0;
- X col=0;
- X c=0;
- X
- X while(c!=EOF)
- X {
- X c=cget(s);
- X if(comlev==1 && c!='*') comlev=0;
- X
- X switch(c)
- X {
- X case '\n': buf[cnt]='\0';
- X think(cnt);
- X cnt=0;
- X break;
- X case '#': if(col==1) readtoeol(); /* skip over preprocessor lines */
- X break;
- X case '\\': c=cget(s);
- X break;
- X case '/': comlev=1;
- X break;
- X case '*': if(comlev==1) readto_eocomment();
- X break;
- X case '\"': readto_eoquote();
- X break;
- X case '\'': readto_eochar();
- X break;
- X case '{': depth++;
- X break;
- X case '}': depth--;
- X break;
- X }
- X if(depth==0 && comlev==0 && c!=EOF && c!='\n') buf[cnt++]=c;
- X }
- X}
- X
- Xreadtoeol()
- X{
- X c=cget(s);
- X while(c!=EOF && c!='\n') c=cget(s);
- X}
- X
- Xreadto_eocomment()
- X{
- X c=cget(s);
- X
- X while(c!=EOF)
- X {
- X if(c=='*')
- X {
- X c=cget(s);
- X if(c=='/') return;
- X }
- X else c=cget(s);
- X }
- X}
- X
- Xreadto_eoquote()
- X{
- X c=cget(s);
- X while(c!=EOF && c!='\"') c=cget(s);
- X}
- X
- Xreadto_eochar()
- X{
- X c=cget(s);
- X while(c!=EOF && c!='\'') c=cget(s);
- X}
- X
- Xthink(cnt)
- X{
- X int z;
- X z=cnt;
- X
- X if(z>2)
- X {
- X z--;
- X while((buf[z]==' ' || buf[z]=='\t') && z>1) z--;
- X buf[z+1]='\0';
- X if(buf[z]==')')
- X {
- X if(c_flag)
- X {
- X int tc,r,tspot=0,vd=1,validchar=0,checknow=0;
- X
- X for(r=z;r>0;r--) /* find first space before function parentheses */
- X {
- X if(buf[r]==' ' || buf[r]=='\t') /* if a whitespace */
- X {
- X if(validchar) /* and we're ready to accept one */
- X {
- X tspot=r; /* remember the tab-spot */
- X vd=0;
- X break; /* leave loop */
- X }
- X }
- X else if(checknow) validchar=1; /* if first non-space before parentheses, must be function name. OK to look for leading space now */
- X else if(buf[r]=='(') checknow=1; /* see if we left the function parentheses */
- X }
- X for(r=tspot;r<=z;r++) /* find leftmost parentheses of function decl after tspot */
- X {
- X if(buf[r]=='(')
- X {
- X buf[r+1]=')';
- X buf[r+2]='\0';
- X break;
- X }
- X }
- X if(vd) printf("void\t\t\t%s;\n",buf);
- X else
- X {
- X for(r=0;r<tspot;r++) putchar((int)buf[r]);
- X tc=3-(tspot>>3); /* tab size of 8, 2^3) */
- X for(r=0;r<tc;r++) putchar('\t');
- X printf("%s;\n",buf+tspot+1);
- X }
- X }
- X else if(s_flag) printf("%s\n",buf); /* no line num */
- X else printf("\t%4d: %s\n",linecount,buf); /* default mode */
- X return;
- X }
- X }
- X}
- X
- Xchar cget(f)
- XFILE *f;
- X{
- X char c;
- X c=getc(f);
- X if(c=='\n')
- X {
- X linecount++;
- X col=0;
- X }
- X else col++;
- X if(c=='\\') /* if escape slash is read, */
- X {
- X c=getc(f); /* get char after escape */
- X return(cget(f)); /* return next non-escape char after that */
- X }
- X return(c);
- X}
- END_OF_FILE
- if test 4150 -ne `wc -c <'lf.c'`; then
- echo shar: \"'lf.c'\" unpacked with wrong size!
- fi
- # end of 'lf.c'
- fi
- if test -f 'lf.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lf.doc'\"
- else
- echo shar: Extracting \"'lf.doc'\" \(831 characters\)
- sed "s/^X//" >'lf.doc' <<'END_OF_FILE'
- Xlf - (c) 1989 by Jeff Bevis
- X
- XThis nifty little program will provide you with a complete listing of all
- XC functions contained within specified files. Usage is as follows:
- X
- X lf [-scn] file.c [[-scn] file.c]
- X
- XAny number of files may be specified on the command line. The options are
- Xas follows:
- X
- X -s Suppress printing of line numbers. By default, line numbers
- X are printed.
- X
- X -c Generate C source code in the form of function declarations.
- X I use this option to generate function declaration headers
- X (def.h) files for my larger programs.
- X
- X -n Force normal formatting again. Since flags can be specified
- X anywhere on the command line (before or after files), you
- X can cancel the c and s options for subsequent files with
- X this option.
- X
- XThe source code provided will compile equally well under UNIX or Amiga
- XLattice.
- X
- X-Jeff
- END_OF_FILE
- if test 831 -ne `wc -c <'lf.doc'`; then
- echo shar: \"'lf.doc'\" unpacked with wrong size!
- fi
- # end of 'lf.doc'
- fi
- if test -f 'lf.uu' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'lf.uu'\"
- else
- echo shar: Extracting \"'lf.uu'\" \(14446 characters\)
- sed "s/^X//" >'lf.uu' <<'END_OF_FILE'
- Xbegin 644 lf
- XM```#\P`````````#``````````(```>:```!?0```<0```/I```'FDCG?OXD[
- XM2"0`2?D`````+'@`!$?Y```#`'(`(#P```$$8`(FP5'(__PI3P-`*4X#.$*LD
- XM`SQP`"(\```P`$ZN_LY#^@%:<`!.KOW8*4`&/&8&<&1@``#\)FX!%"EK`)@#]
- XM-$JK`*QG:"`/D*\`!`:`````@"E``P0@:P"LT<C1R")H`!#3R=/)(`)R`!(9&
- XM*4D#2-"!4H!"9U*``D#__I_`58!"=P@`(`)3@-2!'[(``"``4X)1R/_V'[P`(
- XM("``4X(?L2``(`!1RO_X(D\O"6!R*6L`.@,$<']2@-&L`P1!ZP!<3J[^@$'KZ
- XM`%Q.KOZ,*4`#/"\`)$`@*@`D9Q(L;`8\($`B*```*4$#-$ZN_X(B*@`@9QHDW
- XM/````^U.KO_B*4`#1&<*Y8@@0"=H``@`I"!L`SPO"$AL`P`@:``D*6@`!`-(W
- XM3KH`9DZZ%6YP`&`$("\`!"\`("P#+&<$($!.D$ZZ$$8L>``$(FP&/$ZN_F).S
- XMN@`\2JP#/&<:(BP#1&<$3J[_W"QX``1.KO]\(FP#/$ZN_H8@'RYL`T!,WW]^S
- XM3G5D;W,N;&EB<F%R>0!.=4YU2.<#$"9O`!`@2TH89OQ3B)'++`A^`!X;2H=GB
- XM,E.L`2IM%B!L`2)#Z``!*4D!(B`'$(!R`!(`8-P@!W(`$@!(;`$>+P%.N@%VS
- XM4$\B`&2&P!'DAX__].N@%D4$\@!DS?",!.=0```````'!A3E7_W$CG#S`F#
- XM;P!$?`!![0`,*TC_\AX;2@=G``$*<"6^`&8``,P>&W``$`=R&%U!:P``B+![4
- XM$`AF]$[[$`0`9&```%``>&```!H`<&```!0`<V````(@;?_R)%@K2/_R8$H@V
- XM;?_R*!@K2/_R1>W_['H'2H5K%B`$<@_`@4'Z`,#1P!204XKHA%.%8.9"+?_M(
- XM8!H@;?_R*!@K2/_R+P1(;?_E3KH6V%!/1>W_Y2\*3KK^Y%A/W(!@`/]>4H93A
- XMK`$J;1@@;`$B0^@``2E)`2(@!Q"`<@`2`&``_SYP`!`'2&P!'B\`3KH`:E!/^
- XM(@!@`/\H4H93K`$J;1@@;`$B0^@``2E)`2(@!Q"`<@`2`&``_PAP`!`'2&P!^
- XM'B\`3KH`-%!/(@!@`/[R2&P!'DAX__].N@`@(`9,[0SP_\1.74YU,#$R,S0U.
- XM-C<X.4%#1$5&````3E7_[$CG+Q`N+P`T)F\`."@'<#'`JP`89P9P_V```G`(4
- XM*P`'`!I6P$0`2(!(P"P`2JL`%&8``(0(*P`"`!MF>G``)T``#'+_OH%G``)"#
- XM+PM.NA4J6$]*@&<,".L`!0`;</]@``(J".L``0`;2@9G#B`K`!0B`$2!)T$`U
- XM#&`(("L`%"=```Q3JP`,;18@:P`$0^@``2=)``0@!Q"`<@`2`&`2(`=R`!(`:
- XM+PLO`6$`_U)03R(`(`%@``'6""L``@`;9UAP_[Z`9@9P`&```<(@!QM`__]*Z
- XM!F<B<@J^@68<<@(O`4AZ`;(O*P`<*T'_\$ZZ#>Q/[P`,*@!@&G(!+P%(;?__[
- XM+RL`'"M!__!.N@W03^\`#"H`?O]@``#@".L``0`;2@9G4G#_OH!G3%2K``QR<
- XM"KZ!9B8@:P`$0^@``2=)``00O``-(BL`#$J!:PHO"R\`80#^KE!/4JL`#"!K?
- XM``1#Z``!)TD`!"`'$(`B*P`,2H%K``$<?O\@*P`$D*L`$"M`__!G<@@K``8`*
- XM&F=22'@``D*G+RL`'$ZZ!EA/[P`,*T#_[$H&9SA3K?_L;3)"IR\M_^PO*P`<9
- XM3KH&.$AX``%(;?_]+RL`'$ZZ%8Q/[P`82JP#&&8*$"W__7(:L`%GR"\M__`O-
- XM*P`0+RL`'$ZZ#/!/[P`,*@!@`GH`</^Z@&8(".L`!0`;8`RZK?_P9P8(ZP`$5
- XM`!M*!F<.(BL`%"0!1((G0@`,8!@(*P`"`!MG"'(`)T$`#&`((BL`%"=!``P@;
- XM:P`0)T@`!+Z`9RY3JP`,;18@:P`$0^@``2=)``0@!Q"`<@`2`&`2(`=R`!(`5
- XM+PLO`6$`_9!03R(`<##`JP`89P1P_V`,</^X@&8$<`!@`B`$3-\(]$Y=3G4-K
- XM"@````````````!P84CG!Q`F;P`4""L`!P`:5L!$`$B`2,`N`'`PP*L`&&<**
- XM0JL`"'#_8``!6`@K``<`&V<4""L`!@`;9PPO"TAX__].NOT:4$]*JP`49C9"1
- XMJP`(""L``@`;9Q)P`2=``!1!ZP`@)T@`$&```(0O"TZZ$FI83TJ`9W8(ZP`%;
- XM`!MP_V```0!*!V=F5*L`""`K``A*@&Y:(&L`!$/H``$G20`$?``<$"`(``^
- XM```:9RX,@`````UF,E.K``AM%"!K``1#Z``!)TD`!'``$!!@``"T+PMA`/\N"
- XM6$]@``"H".L`!``;</]@``"<(`9@``"6""L``0`;9DX(ZP```!LO*P`4+RL`A
- XM$"\K`!Q.NA.H3^\`#"H`2H5J!@CK``4`&TJ%9@8(ZP`$`!M*A6\:2@=G"B`%;
- XM1(`G0``(8`0G10`((&L`$"=(``1P,L"K`!AG%DH'9PAP_R=```A@!G``)T``6
- XM"'#_8"!3JP`(;1(@:P`$0^@``2=)``1P`!`08`@O"V$`_H183TS?".!.=0``]
- XM+FP#0$ZZ%$Y(>0```!1.N@8T``````````!P84CG(#`F;P`0)$M*$F<D<``0I
- XM$D'L`6T(,``!"`!G"G(`$@!T()*"8`1R`!(`%(%2BF#8(`M,WPP$3G4`````%
- XM`````'!A3E7_^$CG`S`F;P`@)&\`)"XO`"@@2DH89OQ3B)'*+`@@2TH89OQ38
- XMB)'+(`@B2]/`*TG_^+R'8P(L!R`&($I@`A+84X!D^B!M__A",&@`(`M,WPS`?
- XM3EU.=2!O``0@"$H89OQ32)'`(`A.=0``("\`""!O``1.5?_T(D]R"DZZ"&`&G
- XM00`P$L%*@&;P(`D0X;_)9OI"$)"/3EU.=0``("\`""!O``1.5?_T(D\B``)!;
- XM``<&00`P$L'FB&;P(`D0X;_)9OI"$)"/3EU.=0``,#$R,S0U-C<X.6%B8V1ER
- XM9B`O``@@;P`$0^\`!#(``D$`#Q+[$-SHB&;R(`DB#UB!$.&RB6;Z0A"0@4YUP
- XM(&\`!")(<@!P`"\"#!``*V<!``+68"4D@0&`0``#!M$@P```EN#"0!Y8'26
- XM@M*!TH!@Y@P1`"UF`D2!)!\@"%.`(&\`"""!D(E.=2\'+B\`"%*L!C13K`$JS
- XM;18@;`$B0^@``2E)`2(@!Q"`<@`2`&`4(`=R`!(`2&P!'B\!3KKY[%!/(@`NL
- XM'TYU3E4``"\+)F\`#$*L!C1(;0`,+PM(>O^L3KH,NDAL`1Y(>/__3KKYO"`L8
- XM!C0F;?_\3EU.=0``3E7_YDCG#S`F;P`Z+B\`/D(M__]"K`,8*VP&./_R>@.Z)
- XMK`#@;!(@!>>`0>P$]$JP"`!G!%*%8.@@+`#@L(5F#'`8*4`&.'#_8``!*B`%H
- XMYX!![`3TT<`D2$JM`!!G"`@M``(`$V<**WP```/L_^Y@""M\```#[O_N(#P`&
- XM`(``P*P`^+&'"`<``V<,(`<"0/_\+@``1P`"(`=R`\"!#(`````"9PP,@```F
- XM``%G!$J`9@8L!U*&8`QP%BE`!CAP_V```+0@!P*````#`&<``(@(!P`*9Q8;5
- XM?``!__\O+?_N+PM.N@3V4$\H`&`\"`<`"6862'@#[2\+3KH$F%!/*`!*A&H$(
- XM",<`"0@'``EG&AM\``'__REM__(&."\M_^XO"TZZ!1Q03R@`2BW__V<V(`=RJ
- XM>-*!P(%*@&<J2H1K)B\$3KH%9$AX`^TO"TZZ!$9/[P`,*`!@#DAX`^TO"TZZX
- XM!#103R@`2JP#&&<$</]@""2&)40`!"`%3-\,\$Y=3G4`````````````````C
- XM``````````````````````!P84CG#Q`N+P`8+"\`'"HO`"`O!TZZ!?A83R9`,
- XM(`MF!'#_8!XO!2\&+RL`!$ZZ`P!/[P`,*`!*K`,89P1P_V`"(`1,WPCP3G4`=
- XM`$CG`S`N+P`42H=N!G``8```I'`(OH!D`BX`(`=6@"X``D?__$7L`/`F4B`+)
- XM9T`@*P`$L(=M,K"'9@P@4R2(GZP`]"`+8&X@*P`$D(=R"+"!918@2]'')(@DK
- XM2"23)4``!)^L`/0@"V!,)$LF4V"\(`<B+`%HT(%3@$ZZ!(8B+`%H3KH$7BP`C
- XM4(8@!E:`+``"1O_\+P9.N@6>6$\F0"`+9Q(O!B\+3KH-ABZ'80#_5%!/8`)PV
- XM`$S?#,!.=0``````````````````3E7_\$CG#S`F;P`T)&\`.$JJ`!AG""\*"
- XM3KH/!EA/*BP!9'X!<``0,W@`#$``8F<*#$``868,>@!@!BH\``"``%*'<BNR5
- XM,W@`5\!$`$B`2,`H`'``$!,,0`!W9P``B`Q``')G0@Q``&%F``"^2'@`#"\\R
- XM``"!`B\M``A.NOS83^\`#"P`</^\@&8&<`!@``#02H1G!G!`T(!@`G`"+@``M
- XM1T``8```B$J$9P1P`F`"<```0(``2'@`#"\`+RT`"$ZZ_)1/[P`,+`!P_[R`$
- XM9@9P`&```(Q*A&<&<$#0@&`"<`$N`&!(2H1G!'`"8`)P`0!`@```0`$``$`"M
- XM`$AX``PO`"\M``A.NOQ.3^\`#"P`</^\@&8$<`!@1DJ$9P9P0-"`8`)P`BX`/
- XM8`1P`&`RD<@E2``0<``E0``4)48`'"5J`!``!"5```PE0``(2H5F!B`\``"`$
- XM`"('@H`E00`8(`I,WPSP3EU.=0``````````<&%(YP,0+B\`$$?L`/P@"V<T=
- XM""L``@`;9B@(*P`!`!MG("`K``20JP`0+`!*AF<2+P8O*P`0+RL`'$ZZ!#)/E
- XM[P`,)E-@R"\'3KH+(%A/3-\(P$YU``!(YS<0+B\`'"9O`"`L+P`D2JP#,&<$9
- XM3KH/W$*L`Q@B!R0+)@8L;`8\3J[_T"H`</^Z@&8.3J[_?"E``QAP!2E`!C@@C
- XM!4S?".Q.=0``````````````````2.<_`"XO`!PL+P`@*B\`)$JL`S!G!$ZZB
- XM#X1"K`,8(`53@"(')`8F`"QL!CQ.KO^^*`!P_[B`9@Y.KO]\*4`#&'`6*4`&3
- XM."`%#(`````"9Q8,@`````%G"$J`9A@@!F`4(`30AF`.(@=T`'8`+&P&/$ZN7
- XM_[Y,WP#\3G4``$CG-Q`N+P`<)F\`("PO`"1*K`,P9P1.N@\(0JP#&"(')`LF$
- XM!BQL!CQ.KO_6*@!P_[J`9@Y.KO]\*4`#&'`%*4`&."`%3-\([$YU``!(YR,0X
- XM)F\`%"XO`!A*K`,P9P1.N@[`0JP#&"(+)`<L;`8\3J[_XBP`2H9F$DZN_WPIT
- XM0`,8<`(I0`8X</]@`B`&3-\(Q$YU``!.5?_\2.<A$"9O`!A*K`,P9P1.N@YXR
- XM0JP#&"(+=/XL;`8\3J[_K"X`2H=G"B('3J[_IG#_8"8B"R0\```#[DZN_^(NA
- XM`$J'9A).KO]\*4`#&'`"*4`&.'#_8`(@!TS?"(1.74YU3E7__$CG(1`F;P`8E
- XM2JP#,&<$3KH.%$*L`Q@B"W3^+&P&/$ZN_ZPN`$J'9PPB!TZN_Z8B"TZN_[@BE
- XM"R0\```#[DZN_^(N`$J'9A).KO]\*4`#&'`"*4`&.'#_8`(@!TS?"(1.74YUA
- XM```O!RXO``A*K`,P9P1.N@VR(@<L;`8\3J[_W'``+A].=4CG,``D`"8!2$)(,
- XM0\3!QL#`P=1#2$)"0M""3-\`#$YU2H!J```>1(!*@6H```Q$@6$``"!$@4YUE
- XM80``&$2`1(%.=4J!:@``#$2!80``!D2`3G4O`DA!-`%F```B2$!(04A"-`!GF
- XM```&A,$P`DA`-`"$P3`"2$(R`B0?3G4O`W80#$$`@&0```;AF5%##$$(`&0`J
- XM``;IF5E##$$@`&0```;EF55#2D%K```&XYE30S0`YJA(0D)"YJI(0X#!-@`PQ
- XM`C0#2$'$P9""9```"%-#T(%D_G(`,@-(0^>X2$#!028?)!].=2\'+B\`"'``_
- XM*4`#&$J':R*^K`#@;!P@!^>`0>P$]$JP"`!G#B`'YX!![`3TT<`@"&`(<`DI4
- XM0`8X<``N'TYU``!(YP`R)FP&0"`+9Q0D4R)+("L`""QX``1.KO\N)DI@Z)'(V
- XM*4@&1"E(!D!,WTP`3G5(YP$R+B\`%'`,WH`@!W(`+'@`!$ZN_SHF0"`+9@1PZ
- XM`&`Z)T<`"$7L!D`@:@`$)T@`!)'()HA*DF8")(M*J@`$9P8B:@`$(HLE2P`$8
- XM2JP`Y&8$*4L`Y$'K``P@"$S?3(!.=0``````````````````2.<',"XO`!@FW
- XM;P`<+"\`("\'3KK_#%A/)$`@"F8$</]@-@@J``,``V<02'@``D*G+P=.NOC@C
- XM3^\`#"\&+PLO*@`$3KK[I$_O``PJ`$JL`QAG!'#_8`(@!4S?#.!.=0``3E7_?
- XMQ$CG)S`F;P!<)&\`8'X`?`!Z`'``&WP`(/_[<@`K0?_V=/\K0O_R0>W_T!M`_
- XM__$;0/_\*T'_Y"M!_^@K2/_,2A-G+'``$!,$0``@9Q170&<444!G"%5`9A9^I
- XM`6`.?`%@"GH!8`8;?``!__Q2BV#0$!-R,+`!9@92BQM!__MP*K`39@P@4EB27
- XM*U#_]E*+8`Y(;?_V+PM.NO6^4$_7P!`3<BZP`68B4HMP*K`39@P@4EB2*U#_.
- XM\E*+8`Y(;?_R+PM.NO644$_7P!`3<FRP`68*&WP``?_Q4HM@"')HL`%F`E*+C
- XM$!MR`!(`&T#_\`1!`%AG``%^!$$`"V<``@I306<D!$$`"V<``1)306<``5!7+
- XM06<``;I506<``.1706<``5)@``'X2BW_\6<((%)8DB`08`8@4EB2(!`K0/_L9
- XM;`IR`42M_^PK0?_H2JW_Z&<$<"U@"DH&9P1P*V`"<"`;0/_0<``0!B(M_^B"8
- XM@'``$`6"@&<(4JW_S%*M_^0O+?_L+RW_S$ZZ]#903RM`_\@@+?_R2H!J!G(!^
- XM*T'_\B`M_\@B+?_RDH!([0`"_\1O-"!M_\PB2-/!+P`O"2\(3KH&HD_O``QP^
- XM`!`M__LB+?_$(&W_S&`"$,!3@63Z("W_\BM`_\C1K?_D0>W_T"M(_\Q*!V<`)
- XM`3`;?``@__M@``$F2BW_\6<((%)8DB`08`8@4EB2(!`K0/_L8`#_9$HM__%GD
- XM""!26)(@$&`&(%)8DB`0*T#_[$HM__QG$B!M_\P0_``P<@$K0?_D*TC_S"\`*
- XM+RW_S$ZZ\YI03RM`_\A@`/\R&WP`,/_[("W_\DJ`:@9P""M`__)*+?_Q9P@@A
- XM4EB2(!!@!B!26)(@$"M`_^Q*+?_\9Q8@;?_,$/P`,!#\`'AR`BM!_^0K2/_,\
- XM+P`O+?_,3KKS?E!/*T#_R'!8L"W_\&8`_M!(;?_03KKR1EA/8`#^PB!26)(BQ
- XM4"M)_\QF"$'Z`-@K2/_,(&W_S$H89OQ3B)'M_\PK2/_D("W_\DJ`:R:QP&\B_
- XM*T#_Y&`<<`$K0/_D(%)8DB`0&T#_T$(M_]%@!G``8```C"`M_^0B+?_VLH!L2
- XM"'0`*T+_]F`$D:W_]DH'9S93K?_D;1AP`"!M_\P0&"\`*TC_S"!M`!!.D%A/*
- XM8.)3K?_V;4AP`!`M__LO`"!M`!!.D%A/8.A3K?_V;1)P`!`M__LO`"!M`!!.A
- XMD%A/8.A3K?_D;1AP`"!M_\P0&"\`*TC_S"!M`!!.D%A/8.(@"TS?#.1.74YU<
- XM``!.5?_T2.<!,"9O`"`D;P`D*VT`$/_V'AI*!V<T<"6^`&8BL!)F!%**8!HOO
- XM"TAM__8O"F$`_!9/[P`,*T#_^F<$)$!@TG``$`<O`$Z36$]@QDS?#(!.74YU9
- XM``!.5?_P2.<A,B9O`"P,K````"`&AFP``(80$W(@L`%G#'()L`%G!G(*L`%FP
- XM!%*+8.A*$V=H("P&AN6`4JP&AD'L!H[1P"1(<"*P$V8F4HLDBTH39PIP(K`3J
- XM9P12BV#R2A-F#$AX``%.N@(D6$]@GD(;8)HDBTH39Q@0$W(@L`%G$'()L`%G/
- XM"G(*L`%G!%*+8.1*$V8"8`9"&V``_W)*K`:&9@8@;`,\8`1![`:.*4@&BDJLQ
- XM!H9F?$/Z`21-[`9,+-DLV2S9+-D\D2)L`SP@:0`D2'@`*"\H``1(;`9,3KKPW
- XM8D_O``PL;`8\0>P&3"(()#P```/N3J[_XBE`!/@I0`4`<A`I003\*4`%""E!\
- XM!03E@"M`__`L>``$D\E.KO[:(&W_\")`(V@`"`"D?@`K0/_T8"HL;`8\3J[_P
- XMRBE`!/A.KO_$*4`%`$'Z`*8B""0\```#[4ZN_^(I0`4(?A`@!P!`@`&!K`3TE
- XM(`<`0(`"@:P$_`"L``"``P4$2JP!9&<$<`!@!B`\``"``"X`0JP!&"`'`$``B
- XM`2E``11P`2E``3H@!P!```(I0`$V<`(I0`%<(`<`0`"`*4`!6$'Z!#(I2`,P3
- XM+RP&BB\L!H9.N@`F0I=.NO543.U,A/_<3EU.=6-O;CHQ,"\Q,"\S,C`O.#`OQ
- XM`"H`3OD`````````````2.<P,BQO`#@@;P`8(F\`'"1O`"`F;P`D("\`*"(O=
- XM`"PD+P`P)B\`-$ZN_J1,WTP,3G4``"\+)F\`"$JK`!1G#`@K``,`&V8$<`!@Z
- XM-B\L`G!.NO*>6$\G0``$)T``$$J`9@IP#"E`!CAP_V`6)VP"<``4<//!JP`8F
- XM<``G0``,)T``""9?3G4``````````'!A2.<'`"XO`!`@+`#@4X`L`$I&:S`@$
- XM!DC`YX!![`3T*C`(`$H%9QH(!0`$9A0@!DC`YX!![`3T+S`(!$ZZ]N183U-&>
- XM8,PO!TZZY\183TS?`.!.=0``("\`""!O``1.5?_T(D]L!A#\`"U$@'(*3KKWE
- XM)`9!`#`2P4J`9O`0X;_)9OI"$"`(3EV0KP`$3G5.5?_H2.<!,BXO`#1*AVX&4
- XM</]@``#2<`B^@&0"+@`@!U:`+@`"1__\)&T`""`M``C0A]^L`/1![`#P)E`K<
- XM0/_P*TC_]"`+9P``D"!+("L`!-'`*TC_[")M__"WR6,0)(LE1P`$+&W_]"R*R
- XM<`!@>+?)9AHL4R2.("L`!"(`TH<E00`$+&W_]"R*<`!@6K7(9`B?K`#T</]@0
- XM3K7(9BQ*DV<.(%.SR&,(GZP`]'#_8#C?JP`$2I-G#K/39@H@*0`$T:L`!":1H
- XM<`!@'BM+__0K;?_L_^@F4V``_VX@;?_T((I"DB5'``1P`$S?3(!.74YU``!(2
- XMYP<P+B\`&"9O`!PL+P`@+P=.NO:46$\D0"`*9@1P_V`>+P8O"R\J``1.NO08S
- XM3^\`#"H`2JP#&&<$</]@`B`%3-\,X$YU```@;P`$(F\`""`O``QO%K/(90S1)
- XMP-/`$R!3@&;Z3G42V%.`9OI.=0``3E7_^$CG`#!'[`#\(`MG#$JK`!AG!B1++
- XM)E-@\"`+9B)(>``B3KKP3EA/)D!*@&8$<`!@'"2+<"%R`"!+$,%1R/_\+PLO\
- XM+0`,+RT`"$ZZ\.Y,[0P`__!.74YU``!(YP,0)F\`$`@K``$`&V<0+PM(>/__*
- XM3KKGR%!/+@!@`GX`<`S`JP`89A1*JP`49PXO*P`4+RL`$$ZZ_@I03T*K`!@O6
- XM*P`<3KH""%A/+`!P_[Z`9P9*AF8"<`!,WPC`3G5.5?^H2.<!`BQX``1#^@".3
- XM<`!.KOW8*T#_J&8*2'@`%$ZZ_3983WX`(&P#2!XH__\@!T/M_[!@`A+84X!D;
- XM^D(U>+!![?^P*4@"@"\M_ZA(>``H2'@`^G``+P`O`$AL`IQR`"\!2&P"B"\!^
- XM3KK\7$AX`!1.NOSD3.U`@/^@3EU.=2HJ(%-T86-K($]V97)F;&]W("HJ``!%Y
- XM6$E4``!I;G1U:71I;VXN;&EB<F%R>0```````````'!A3E7_F$CG,P)^`"!LT
- XM`T@>*/__<$^^@&\"+@`@!T/M_Z]@`A+84X!D^D(U>*\L>``$D\E.KO[:*T#_-
- XMIB!`2J@`K&=2(B@`K.6!(D$L*0`X2.T``O^>2H9F!"PH`*!*AF<T+&P&/"(&8
- XM0?H`LB0(=@M.KO_0($=2AR`(&[P`"@BO+&P&/"(&)@=![?^O)`A.KO_0</]@V
- XM4BQX``1#^@",<`!.KOW8*T#_FF8$</]@.D'M_Z\I2`+0+RW_FDAX`#Q(>`#Z%
- XM<``O`"\`2&P"[$AL`MA(;`+$0J=.NOLZ3^\`)%.`9P1P_V`"<`!,WT#,3EU.O
- XM=2HJ(%5S97(@06)O<G0@4F5Q=65S=&5D("HJ``!#3TY424Y510``04)/4E0`#
- XM*BHJ($)R96%K.B``:6YT=6ET:6]N+FQI8G)A<GD`2.<!$"XO``PO!TZZ\X!85
- XM3R9`(`MF!'#_8"@(*P`$``-G!G``)H!@&B\K``1.NO):6$]P`":`2JP#&&<$C
- XM</]@`G``3-\(@$YU+P=P`"(\```P`"QX``1.KO[.+@`"AP``,`!*AV<@2JP#3
- XM,&<:(&P#,$Z02H!F`F`.0JP#,$AX`!1.NOKF6$\N'TYU8;Q.=0`````#[```1
- XM``$````!```8I@````(````"````%`````H````````#\@```^D```%]O^P#O
- XM!&4`!;)(YP<0+B\`%"9O`!AP`;Z`;P`!'BP`O(=L``$\(`;E@"!S"`!P+;`0<
- XM9@``@'H!(`;E@"\S"`!.N@6$6$^Z@&P``.H@!N6`(',(`-'%$!!(@`1``&-G0
- XM%@1```MG'%M`9B00+`3O4@`90`3O8#H0+`3N4@`90`3N8"YP`!E`!.\90`3N4
- XM8")*+`3N9AP@!N6`(',(`-'%$!!(@$C`+P!(;```3KH%/E!/4H5@A"`&Y8!(S
- XM;``:+S,(`$ZZ!/Y03RE``TQG/$HL!.YG%"`&Y8`O,P@`2&P`'$ZZ!1!03V`2*
- XM(`;E@"\S"`!(;``Z3KH$_%!/80``;"\L`TQ.N@366$]@+$HL!.YG%"`&Y8`OS
- XM,P@`2&P`1$ZZ!-103V`2(`;E@"\S"`!(;`!B3KH$P%!/4H9@`/[H2BP$[F<,3
- XM2&P`>$ZZ!(Q83V`*2&P`FDZZ!(!83TAX``I.N@2"6$],WPC@3G6_[`,$90`$&
- XM3DCG!P!^`'P`>@!P`"E`!.HI0`3F0BP#4!`L`U`,``#_9P``W"\L`TQA``.HF
- XM6$\90`-0<`&^@&8,$"P#4'(JL`%G`GX`$"P#4$B`!$``"F<H!$``&&=D4T!G,
- XM,EE`9V)70&=,6T!G1`1``"UG+@1``!]G5%5`9U1@5$'L`U%",%@`+P5A``%VC
- XM6$]Z`&!`<`&PK`3F9CAA``!N8#(O+`-,80`#,EA/&4`#4&`B?@%@'G`!OH!F>
- XM&&$``(9@$F$``,Y@#&$``0!@!E*&8`)3ADJ&9@#_2$J'9@#_0A`L`U`,``#_V
- XM9P#_-G(*L`%G`/\N($52A4/L`U$B"!.`&`!@`/\<3-\`X$YUO^P#!&4``T(O%
- XM+`-,80`"P%A/&4`#4!`L`U`,``#_9Q9R"K`!9Q`O+`-,80`"HEA/&4`#4@N
- XM3G6_[`,$90`#"B\L`TQA``*(6$\90`-0$"P#4`P``/]G+'(JL`%F%B\L`TQA0
- XM``)J6$\90`-0<B^P`6;<8!`O+`-,80`"5%A/&4`#4*3G6_[`,$90`"O"\L4
- XM`TQA``(Z6$\90`-0$"P#4`P``/]G%G(BL`%G$"\L`TQA``(<6$\90`-08.!.<
- XM=;_L`P1E``*$+RP#3&$``@)83QE``U`0+`-0#```_V<6<B>P`6<0+RP#3&$`7
- XM`>183QE``U!@X$YU3E7_Y+_L`P1E``)(2.</`"XM``@L!W`"O(!O``&T4X9P1
- XM($'L`U&P,&@`9PQP"4'L`U&P,&@`9@IP`;R`;P13AF#>0>P#4D(P:`!P*4'LG
- XM`U&P,&@`9@`!>DHL!.YG``%(<`!R`2M!_^PH!BM`_^0K0/_H*T#_\$J$;TQPP
- XM($'L`U&P,$@`9PQP"4'L`U&P,$@`9A!*K?_H9RHK1/_P0JW_[&`D2JW_Y&<((
- XM<`$K0/_H8!)P*$'L`U&P,$@`9@9P`2M`_^13A&"P*"W_\+B&;B1P*$'L`U&PE
- XM,$@`9A1![`-2$;P`*4@`0>P#4T(P2`!@!%*$8-A*K?_L9Q)(;`-12&P`ODZZ^
- XM`8903V```,AX`+BM__!L/%.L`2IM&"!L`2)2K`$B0^P#41`Q2``0@'(`$@!@!
- XM&D'L`U$0,$@`<@`2`$AL`1XO`4ZZ`2!03R(`4H1@OB`M__#F@'(#DH`J`7@`4
- XMN(5L+%.L`2IM$B!L`2)2K`$B<`D0@'(`$@!@$$AL`1Y(>``)3KH`XE!/(@!2D
- XMA>P#4='M__!#Z``!+PE(;`#*3KH`Z%!/8"I*+`3O9Q!(;`-12&P`T$ZZ1
- XM`-)03V`42&P#42\L!.I(;`#43KH`N$_O``Q,WP#P3EU.=;_L`P1E``!T2.<!,
- XM$"9O``Q3JP`(;0X@:P`$4JL`!'``$!!@""\+3KH`?%A/+@!P"KX`9@Q2K`3JC
- XM<``I0`3F8`12K`3F<%R^`&8F4ZL`"&T.(&L`!%*K``1P`!`08`@O"TZZ`$)8*
- XM3RX`+PMAE%A/8`(@!TS?"(!.=0``3OD```>43OD``!LL3OD```A,3OD```-H/
- XM3OD```&L3OD``!N(3OD```W83OD```8,3OD```F&3OD```(8```#[`````H`3
- XM```````%Y```!<P```7>```%T@``!=@```7P```%P```!>H```7&```%N@``$
- XM``````/R```#Z@```,!5;G)E8V]G;FEZ960@;W!T:6]N.B`E8PH``'(`+RH*)
- XM("H@1G5N8W1I;VYS(&9R;VT@)7,*("HO"@``1DE,13H@)7,*`"\J($9)3$4ZK
- XM("5S($Y/5"!04D5314Y4(2`J+PH``$-A;B=T(&]P96X@9FEL92`E<RX*```O,
- XM*B!.;R!F:6QE<R!S<&5C:69I960@9F]R(&QF("HO"@``66]U(&UU<W0@<W!EP
- XM8VEF>2!A($,@<V]U<F-E(&9I;&4N"@``=F]I9`D)"25S.PH`)7,["@``)7,*A
- XM``DE-&0Z("5S"@```````"@`````````````````````````````@`````$>)
- XM```````````````````````````````````````````!0```````````````!
- XM`````````````````````````````````````````````````````````````
- XM````````````````@`````0``"`@("`@("`@("@H*"@H("`@("`@("`@("`@L
- XM("`@("`@2!`0$!`0$!`0$!`0$!`0$(2$A(2$A(2$A(00$!`0$!`0@8&!@8&!6
- XM`0$!`0$!`0$!`0$!`0$!`0$!`0$0$!`0$!""@H*"@H("`@("`@("`@("`@(":
- XM`@("`@("`A`0$!`@("`@("`@("`@*"@H*"@@("`@("`@("`@("`@("`@("!(>
- XM$!`0$!`0$!`0$!`0$!`0A(2$A(2$A(2$A!`0$!`0$!"!@8&!@8$!`0$!`0$!5
- XM`0$!`0$!`0$!`0$!`1`0$!`0$(*"@H*"@@("`@("`@("`@("`@("`@("`@("A
- XM$!`0$"````````(`__\````.``X```````````````#__P````0`!```````"
- XM`!QH```"=/__````!``$````````''X`````__\````.``X````````=C@``?
- XM``#__P````0`!``````````````"L/__````!``$````````':H`````__\`#
- XM```$``0````````=M`````````/L````!0````````+X```"Y````KP```*H5
- XD```"E`````0````"```"U````I@```$>````_`````````/R<
- X``
- Xend
- Xsize 10296
- END_OF_FILE
- if test 14446 -ne `wc -c <'lf.uu'`; then
- echo shar: \"'lf.uu'\" unpacked with wrong size!
- fi
- # end of 'lf.uu'
- fi
- if test -f 'makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'makefile'\"
- else
- echo shar: Extracting \"'makefile'\" \(339 characters\)
- sed "s/^X//" >'makefile' <<'END_OF_FILE'
- X#
- X# Makefile for lf (Lattice 5.0)
- X# (c) 1989 Jeff Bevis
- X#
- X
- XOBJS = lf.o
- X
- XLIBS = lib:lc.lib lib:amiga.lib
- XH =
- XRM = delete
- XCFLAGS = -ctw
- XLNFLAGS = VERBOSE BATCH
- XLN = blink
- XCC = lc
- XSTARTUP = lib:c.o
- X
- X.c.o:
- X $(CC) $(CFLAGS) $*.c
- X
- Xlf: $(OBJS)
- X $(LN) $(STARTUP) $(OBJS) TO $@ LIB $(LIBS) $(LNFLAGS)
- X
- Xclean:
- X $(RM) #?.o
- X
- X
- END_OF_FILE
- if test 339 -ne `wc -c <'makefile'`; then
- echo shar: \"'makefile'\" unpacked with wrong size!
- fi
- # end of 'makefile'
- fi
- echo shar: End of archive 1 \(of 1\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have the archive.
- rm -f ark[1-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Mail submissions (sources or binaries) to <amiga@cs.odu.edu>.
- Mail comments to the moderator at <amiga-request@cs.odu.edu>.
- Post requests for sources, and general discussion to comp.sys.amiga.
-